home *** CD-ROM | disk | FTP | other *** search
/ ASME's Mechanical Engine…ing Toolkit 1997 December / ASME's Mechanical Engineering Toolkit 1997 December.iso / main_frm / dvidis.zoo / dvidis.doc next >
Text File  |  1989-02-16  |  15KB  |  331 lines

  1.         This documentation corresponds to DVIDIS V3.4
  2.  
  3.             Documentation Version of 6-Apr-88
  4.  
  5. DVIDIS is a program that displays TeX DVI files on a VaxStation running VWS.
  6.  
  7.                   N O T E
  8.  
  9.     If you have used previous versions of DVIDIS, note that this
  10.     version is VERY different.  The human interface is much better,
  11.     but most important, the program now reads PK format font files,
  12.     not the old, very obsolete RST format font files.  It is possible
  13.     to build a version with RST file support, but that hasn't been
  14.     tested and is not recommended.  PK fonts are MUCH better in every
  15.     way.
  16.  
  17. Basic usage is very simple.  To display file TEXT.DVI, for example, just
  18. type:
  19.         $ DVIDIS TEXT
  20.  
  21. on your VAXStation.  A large window will be created, and your text should
  22. start to appear in it; depending on the paper size and where you have located
  23. your window (by default it starts out centered), you may be able to see the
  24. "edge" of the paper as a gray bar.  Meanwhile, your keyboard will remain
  25. attached to the window you were previously in, and you can enter commands.
  26. For a list of commands available to you, hit the HELP key.  The effect of
  27. the various commands is easy to see, so experiment until you feel comfortable
  28. with them.
  29.  
  30. You can also specify a couple of options on the DVIDIS command line.  These
  31. CANNOT be changed once DVIDIS has started.  All options are of the form "-l"
  32. where "l" is any single letter, with the single exception of -verbose (for
  33. historical reasons).  Some are followed - after a space - by one or a pair of
  34. numeric arguments; the -s command must be followed by a paper size specifica-
  35. tion.
  36.  
  37. For example:
  38.  
  39.         $ DVIDIS -w -p 2 4 TEXT
  40.  
  41. means "display pages 2 to 4 of TEXT.DVI in 'wide' mode."
  42.  
  43. The following options are commonly used:
  44.  
  45. -c    The fonts that DVIDIS uses are meant for a 300 dpi printer.  A VAXSta-
  46.     tion display has about 78 dpi.  As a result, if you display the glyphs
  47.     from these fonts at a 1-1 pixel-to-pixel mapping, they are about 4
  48.     times as large as they would be on the page, and only about 1/9 of the
  49.     page is visible at a time.  Normally, DVIDIS compresses all fonts by a
  50.     2-to-1 factor.  The fonts are still readable, but you can now get most
  51.     of the width of a page - all, with any reasonable margins - and over
  52.     half the height on the screen.  Specifying "-c" turns off this com-
  53.     pression; it's useful mainly for looking at the glyphs, not the text.
  54.  
  55. -w    Specifies a 4-to-1 glyph compression factor.  This allows you to see
  56.     how a whole page looks, but unfortunately it's rather hard to read
  57.     the resulting text.
  58.  
  59. -m    Tells DVIDIS to try to use smaller fonts, rather than compressing
  60.     larger ones.  This only works if you actually HAVE the small fonts on
  61.     your system.  When it works, it improves the appearance of individual
  62.     characters, although it often makes lines come out with slightly
  63.     different lengths than they should.  -m is especially useful in
  64.     conjunction with -w.  -m in conjunction with -c is meaningless.
  65.  
  66. -s ss    Set the paper size.  This determines what size paper the program
  67.     assumes you are printing on.  The default is "letter", which is
  68.     8.5 x 11 inches.  The argument is the name of a paper size; type
  69.     DVIDIS -s ? for a list of possible values.
  70.  
  71.     The paper size controls where DVIDIS places a visible gray border,
  72.     and when it tells you that characters have "run off the page".  It
  73.     always displays the characters, however.
  74.  
  75.     Paper size "huge" is meant for special purposes; using it will make
  76.     many of the commands you can type to DVIDIS while it is running work
  77.     in strange ways.  You should generally avoid using size "huge".
  78.  
  79. -verbose
  80.     Makes the program talkative.  This is mainly useful for debugging,
  81.     but since it displays all the font files it opens, successfully or
  82.     not, it can be used to determine which files are needed.  The needed
  83.     files can be created if they don't already exist.  They can also be
  84.     put on your workstation's local disk to improve performance.
  85.  
  86. The rest of the options are rarely used:
  87.  
  88. -v <mi>, -h <mi>
  89.     Set the vertical (horizonal) margin.  Next argument is the margin, in
  90.     milli-inches.  Default is 1000 milli-inches each, which is the same
  91.     default used by many common DVI printing programs.  If you find a lot
  92.     of "off-screen glyph" errors, and you have the paper size set cor-
  93.     rectly, try changing these parameters.  (Besides 1000, the second
  94.     most common value expected is 0 for both margins.)
  95.  
  96.     Note that the default corresponds to the current TeX standard.  If
  97.     you find you have to use some other value to make your output look
  98.     right, some other piece of software you are running is obsolete.
  99.  
  100. -p <s> <e>
  101.     Limits the display to pages <s> through <e> inclusive.  You can only
  102.     specify one page range at a time, but you can specify multiple -p
  103.     options, each specifying a page range.  When you specify page ranges,
  104.     DVIDIS will only "see" pages within the ranges given.  Nothing you
  105.     can do while the program is running will let you display any page
  106.     not within any page range - DVIDIS will simply skip past the pages.
  107.  
  108. -f    Causes the program to look in "USER$RST" rather than "TEX$RST" for the
  109.     fonts.  This command is meaningless for the PK version of DVIDIS, and
  110.     of little use even in the RST version.
  111.  
  112. -d    Debug.  Generates a lot of output that's useful only to developers.
  113.  
  114.  
  115. Program    Installation
  116.  
  117. DVIDIS consists of a single image, DVIDIS.EXE, that runs on an VAXStation
  118. with VWS V3.0 or later.  It runs as a normal user-mode image, and needs no
  119. special privileges.  DVIDIS uses a fair amount of memory as it runs, so be
  120. sure to provide a reasonable working set - at least 1200 pages, 2000 or more
  121. is better.  In order for DVIDIS to receive its arguments, it must be started
  122. with a foreign command line, given by something like:
  123.  
  124.         $ DVIDIS :== $DEV:[DIR]DVIDIS
  125.  
  126. Two "environment variables" can be set to control DVIDIS, and you can specify
  127. font substitutions.  The environment variables - typically, logicals, but
  128. if no logicals are defined any DCL symbol of the same name will be used -
  129. are:
  130.  
  131. DVIDIS_FILE_FORMAT
  132.     A string that specifies how to construct a file specification for
  133.     a font file, given a font name and a dots-per-inch value.  The
  134.     font name will be substituted for %s; the dots-per-inch value for
  135.     %d.  You must have EXACTLY one of each, in either order; you may
  136.     NOT have any additional occurences of "%".
  137.  
  138.     There are two common schemes for storing PK font files:
  139.  
  140.         One directory, DEV:[DIR], font "name" at "ddd" dots
  141.         per inch is file name.dddPK.  A format string for
  142.         this case would look like "DEV:[DIR]%s.%dPK".
  143.  
  144.         One root directory, DEV:[DIR.]; fonts at "ddd" dots
  145.         per inch are in subdirectory [.DPIddd], with font
  146.         "name" in name.PK.  A format string for this case
  147.         would look like "DEV:[DIR.DPI%d]%s.PK".
  148.  
  149.     If DVIDIS_FILE_FORMAT is not defined, the default format string
  150.     is "TEX_FONTS:[DPI%d]%s.PK".  This corresponds to the second way
  151.     of organizing the font files, and assumes that TEX_FONTS is a
  152.     rooted logical translating to something like DEV:[DIR.].
  153.  
  154.     You can only specify a single file format, but that file format
  155.     could involve a logical that translates to a search list.  For
  156.     example, using the default file format, you might do:
  157.  
  158.         $ DEFINE TEX_FONTS $DISK1:[TEX.PK.],NODE::TEX_FONTS:
  159.  
  160.     where "NODE" is the name of a node with more fonts than you are
  161.     willing to store locally.  On NODE, TEX_FONTS must be a SYSTEM
  162.     logical name that translates to a rooted directory.  (If you
  163.     have proxy access to NODE, you could define TEX_FONTS in your
  164.     login file on NODE).  Because of a VMS bug, it isn't possible
  165.     to use something like NODE::DEV:[DIR.] to avoid needing a logical
  166.     name on NODE.  (This bug appears in VMS Version 4.5.  If you
  167.     a more recent version, the bug may have been fixed.)
  168.  
  169.             I M P O R T A N T   N O T E
  170.  
  171.     The definition of DVIDIS_FILE_FORMAT will be used as a printf()
  172.     format string.  The "d" and "s" format specifiers MUST be in
  173.     lower case; if you make them upper case, the format will not
  174.     work.  Note also that DCL forces characters to upper case unless
  175.     they are inside a quoted string.  Hence, your definition should
  176.     look something like:
  177.  
  178.         $ DEFINE DVIDIS_FILE_FORMAT "TEX_FONTS:%s.%dPK"
  179.  
  180. DVIDIS_FONT_SIZES
  181.     This variable must translate to a list of all dot-per-inch values
  182.     at which you have any fonts available.  The list consist of just
  183.     the numbers (the "ddd" values discussed above), separated by
  184.     commas.  DVIDIS will never find a font at a size not given in
  185.     the list.
  186.  
  187.     The default list is:
  188.  
  189.         100,121,145,174,180,208,210,225,240,250,263,270,274,
  190.         300,329,360,432,518,622,746,895,896,1074,1075,1289,
  191.         1290,1547,1548
  192.  
  193.     which is the list of values I've got.  Extra values will slow
  194.     DVIDIS down a bit when it has to open a file, but not by much,
  195.     so you can use the default unless you have some sizes I don't.
  196.  
  197.     Note that this list is NOT a search list, use:
  198.  
  199.         $ DEFINE DVIDIS_FONT_SIZES "300,329,360"
  200.  
  201.     WITH THE QUOTATION MARKS.  If you leave the quotation marks off,
  202.     DVIDIS will never use anything but the first value you list.
  203.  
  204.  
  205. Font Substitution
  206.  
  207. If DVIDIS is unable to find a font as specified, it will check to see if you
  208. have defined a substitute for it in any of three substitution files.  If you
  209. are displaying file jobname.DVI, the files are:
  210.  
  211.         jobname.SUB        in the same directory as jobname.DVI;
  212.         TEXFONTS.SUB        in the current directory;
  213.         TEX$INPUTS:TEXFONTS.SUB
  214.  
  215. Every time a substitution is needed, the files present are checked, in the
  216. order given, each from beginning to end, to try to find a substitute.  Only
  217. the first match is used, however.
  218.  
  219. Each of the substitution files has the same format.  It's a simple ASCII file,
  220. with one substitution per line.  Comments, as in TeX, are introduced by "%"
  221. and continue to the end of the line.
  222.  
  223. A substitution line has either of two forms:
  224.  
  225.     oldname.oldsize -> subname.subsize
  226.     oldname            -> subname
  227.  
  228. The first format substitutes only for a particular font name and size.  The
  229. second format substitutes for a particular font name at any size.
  230.  
  231. Spaces can be used freely in substitution lines.
  232.  
  233. Since only the first match is used, and the files are always read from the
  234. first line onward, you should specify particular substitutions - those with
  235. a size - before generic ones.
  236.  
  237. It's not an error for the substituted font file not to be found - DVIDIS will
  238. proceed to look for "nearby" fonts, possibly substituting for them as well.
  239.  
  240. The DVIDIS distribution includes a TEXFONTS.SUB file that substitutes CM fonts
  241. for AM fonts.  This should allow you to display DVI files created using older
  242. versions of TeX.
  243.  
  244.  
  245. Getting the Find and Remove Keypad Keys to Work
  246.  
  247. The Find and Remove keypad keys use OSC functions to control the terminal
  248. window.  OSC's must be enabled; from questions I've received, it seems that
  249. many people are not enabling them.  To enable OSC's, issue the following
  250. command from DCL (in a privileged account):
  251.  
  252.     $ DEFINE/SYSTEM/EXEC UIS$VT_ENABLE_OSC_STRINGS TRUE
  253.  
  254.  
  255. Known Bugs and Restrictions
  256.  
  257. DVIDIS is intended to report an error if it can't find a "close" match to a
  258. font called for in the file it is displaying.  The test it makes for "close-
  259. ness" is wrong, however, so it currently almost never reports a problem.  The
  260. result may be grossly distorted output, with no indication that the problem
  261. isn't in the file, it's that DVIDIS had to chose an inappropriate font.
  262.  
  263. Characters actually appearing in the font file, but with no pixels (i.e., a
  264. "0 by 0" raster) cause DVIDIS to crash.  This is known to occur with the
  265. CMAPL10 font (at least character '040 is a "space") and probably will occur
  266. with any of the LaTeX "invisible" slide fonts.
  267.  
  268. Stanford Version 2.2 of PXTOPK, and all distributed versions to date of
  269. Kellerman and Smith's PXTOPK for VMS, have distinct bugs that produce com-
  270. pletely invalid PK files.  Files produced using the Stanford V2.2 code can
  271. be recognized by using PKTYPE and looking at the X-offset and Y-offset values
  272. for a couple of characters.  Typical values are small positive or negative
  273. integers - values outside the range -30 to 30 are very unlikely.  The V2.2
  274. code will produce random, often very large, values.  I don't know the exact
  275. symptoms of the problems the Kellerman and Smith code will produce.  See the
  276. article by Dan Hosek in TeXhax, Volume 88, #24 for a discussion.  Version 2.3
  277. of PXTOPK fixes the underlying problem; both PXTOPK.WEB and a corresponding
  278. version of PXTOPK.VMS-CHANGES should be available from "the usual sources",
  279. or from the same place you got DVIDIS, if all else fails.
  280.  
  281. DVIDIS uses the dx field of PK fonts to determine the width of the characters
  282. it displays.  Width information can also be obtained from the "TFM width"
  283. field.  It seems that most commonly-used DVI file drivers use the TFM width.
  284. As a result, bugs that result in PK files with invalid dx values can go
  285. undetected for years.  The most common case, easily detectable with PKTYPE,
  286. will have dx=0 for all the characters.  When such a font is displayed, what
  287. you'll see is bunches of characters displayed at the same position; since
  288. inter-word spacing doesn't depend on the dx values, you'll see one "blotch"
  289. per word.  One place I've seen this come up is with the Hebrew fonts that
  290. come with Jacques Goldberg's SemiTeX.  Examination of the GF files reveals
  291. that they have 0 dx values as well, so the problem seems to be some (as-yet
  292. undetermined) inappropriate parameter setting for Metafont.  You can work
  293. around this problem by doing a round-about conversion:  Rather than using
  294. GFTOPK, use GFTOPX (or PKTOPX, if you've already got PK files), then PXTOPK.
  295. PX files don't store the dx value at all, so a CORRECT PXTOPK will re-compute
  296. it.
  297.  
  298. If DVIDIS_FONT_SIZES specifies exactly one font size, unpredictable results,
  299. including crashes, may occur.  This shouldn't happen under normal circum-
  300. stances, but if you find a distorted display and other odd things happening,
  301. it could be that DVIDIS_FONT_SIZES is set up wrong.  In particular, make sure
  302. that you've defined it to have a single translation that contains a list of
  303. sizes separated by commas, rather than as multiple translations, each of which
  304. is a single size.  This is discussed above.
  305.  
  306. If the original TeX run specified a magnification value other than 1000, the
  307. spacing will be incorrect.  The only current work-around is to re-run TeX
  308. without the magnification.  Note that this restriction applies only to GLOBAL
  309. magnifications (i.e., uses of \magification).  Individually magnified fonts
  310. are handled correctly.
  311.  
  312. There is a bug in the VAX C library for Versions 4.6 and 4.7 of VMS that will
  313. cause DVIDIS to die with a Reserved Operand Fault if it runs out of memory.
  314. The only work-around is to increase the amount of virtual memory available
  315. to the process running DVIDIS.  (Note that, without the bug, DVIDIS would
  316. try to recover by discarding some font information it has already read in.
  317. The resulting performance loss would probably be substantial, so you'd
  318. probably want to run with a larger virtual memory limit anyway.  On a work-
  319. station, there is little reason NOT to run this way in any case.  You'll
  320. probably want to allow big working sets, too.)
  321.  
  322.  
  323. Author:  Jerry Leichter, based on work of Bill Gropp's, which in turn was
  324. based on a lot of earlier work by others; with additional input from Bert
  325. Beander at DEC.  Comments/questions/suggestions to Jerry Leichter at
  326.  
  327.         LEICHTER-JERRY@CS.YALE.EDU
  328.        or
  329.         LEICHTER@YALEVMS.BITNET
  330.  
  331.